#pragma once

#include <vex/core/unique_ptr_support.h>
#include <vex/iterable/make_raw_range.h>

namespace vex { namespace iterable { namespace not_yet_usable {
    template<class TRange>
    auto make_unique_range(TRange && p_range)
        -> std::unique_ptr<implementation::range_default_impl<TRange>, core::unique_delete>
    {
        return std::unique_ptr<implementation::range_default_impl<TRange>, core::unique_delete>(
            make_raw_range(std::forward<TRange>(p_range)));
    }

}}}